@file:Suppress("unused")

package com.virtualightning.mvvm.tools.shapes

import android.graphics.Canvas
import android.graphics.Paint
import java.util.*

/**
 *  Anchor : Create by CimZzz
 *  Time : 2021/12/25 23:04
 *  图像依赖
 */
class VLConstraintShape: BaseShape() {
	/**
	 * 图形列表
	 */
	private val shapeList: LinkedList<BaseShape> = LinkedList()

	///////////////////////////////////////////////////////////////////////////
	// 代码分割线 on 2021/12/25 11:29 下午 by CimZzz
	// 以下内容为:
	// 实现父类方法
	///////////////////////////////////////////////////////////////////////////

	/**
	 * X 轴偏移
	 * @param dx Float X 轴偏移量
	 */
	override fun onOffsetX(dx: Float) {
		shapeList.forEach {
			it.onOffsetX(dx)
		}
	}

	/**
	 * Y 轴偏移
	 * @param dy Float Y 轴偏移量
	 */
	override fun onOffsetY(dy: Float) {
		shapeList.forEach {
			it.onOffsetY(dy)
		}
	}

	/**
	 * 移动 X 轴至指定位置
	 * @param x Float X 坐标
	 */
	override fun onMoveX(x: Float) {
		shapeList.forEach {
			it.onMoveX(x)
		}
	}

	/**
	 * 移动 Y 轴至指定位置
	 * @param y Float Y 坐标
	 */
	override fun onMoveY(y: Float) {
		shapeList.forEach {
			it.onMoveY(y)
		}
	}

	/**
	 * 绘制图形
	 * @param canvas Canvas 画布
	 * @param paint Paint 画笔
	 */
	override fun onDraw(canvas: Canvas, paint: Paint) {
		shapeList.forEach {
			it.draw(canvas, paint)
		}
	}

	///////////////////////////////////////////////////////////////////////////
	// 代码分割线 on 2021/12/25 11:30 下午 by CimZzz
	// 以下内容为:
	// 图形操作方法
	///////////////////////////////////////////////////////////////////////////

	/**
	 * 清空图形
	 */
	fun clear() {
		shapeList.clear()
	}

	/**
	 * 添加图形
	 * @param shape BaseShape 图形
	 */
	fun addShape(shape: BaseShape) {
		shapeList.add(shape)
	}
}